package haut.util;

import haut.system.member.events.SportingEvents;
import haut.system.member.person.*;
import haut.util.exception.DuplicationException;
import java.util.Vector;

/**
 * <code>DuplicateCheck</code>是一个数据查重类，
 * 可执行其方法判断数据有无重复，
 * 当数据重复时向外抛出异常
 * @author MingJie Li
 */
public abstract class DuplicateCheck {

    /**
     * 这是一个静态方法，
     * 用于检查待添加的项目是否已经存在，
     * 若存在则向外抛出异常。
     * @param allEvents
     * @param events
     * @throws DuplicationException
     */
    public static void eventCheck(Vector<SportingEvents> allEvents, SportingEvents events) throws DuplicationException {
        int size = allEvents.size();

        for(int i = 0; i < size; ++i) {
            if(events.getId() == allEvents.elementAt(i).getId()) {
                throw new DuplicationException("项目已存在！");
            }
        }
    }

    /**
     * 这是一个静态方法，
     * 用于检查待添加的运动员是已经否存在，
     * 若存在则向外抛出方法。
     * @param allPlayer
     * @param player
     * @throws DuplicationException
     */
    public static void playerCheck(Vector<Player> allPlayer, Player player) throws DuplicationException {
        int size = allPlayer.size();

        for(int i = 0; i < size; ++i) {
            if(player.getId() == allPlayer.elementAt(i).getId()) {
                throw new DuplicationException("运动员已存在！");
            }
        }
    }

    /**
     * 这是一个静态方法，
     * 用于检查待添加的裁判员是否已经存在，
     * 若存在则向外抛出异常。
     * @param allJudge
     * @param judge
     * @throws DuplicationException
     */
    public static void judgeCheck(Vector<Judge> allJudge, Judge judge) throws DuplicationException {
        int size = allJudge.size();

        for(int i =0; i < size; ++i) {
            if(judge.getId() == allJudge.elementAt(i).getId())
                throw new DuplicationException("裁判员已存在！");
        }
    }

    /**
     * 这是一个静态方法，
     * 用于待添加的检查志愿者是已经否存在，
     * 若存在则向外抛出异常。
     * @param allVolunteer
     * @param volunteer
     * @throws DuplicationException
     */
    public static void volunteerCheck(Vector<Volunteer> allVolunteer, Volunteer volunteer)
            throws DuplicationException {
        int size = allVolunteer.size();

        for(int i = 0; i < size ; ++i) {
            if(volunteer.getId() == allVolunteer.elementAt(i).getId()) {
                throw new DuplicationException("志愿者已存在！");
            }
        }
    }
}
